Telegram Group & Telegram Channel
🧠 Хитрая задача на Go (v1.22+) — алгоритмы, циклы и подвох в логике

📌 Задача: "Подряд идущие квадраты"

Дано: массив из N положительных целых чисел []int, например:


[]int{1, 4, 9, 16, 25, 36, 50, 64, 81}


Нужно найти максимальную длину подмассива, где все элементы — квадраты подряд идущих натуральных чисел.

Например, [4, 9, 16, 25] — это квадраты 2², 3², 4², 5² → длина = 4
[50, 64] — не подходят, так как 50 не является точным квадратом.

🎯 Формат функции:


func MaxConsecutiveSquares(nums []int) int


Пример:


input := []int{1, 4, 9, 16, 25, 36, 50, 64, 81}
fmt.Println(MaxConsecutiveSquares(input)) // 👉 6


🧩 Подвох:

- Часто пытаются сравнивать разности или применять хэшмапы — но это ошибка
- Нужно восстановить корни чисел (`sqrt`) и убедиться, что они натуральные и идут подряд
- Важно использовать math.Sqrt и быть осторожным с плавающей точкой (`float64`)
- Также важно не выходить за границы slice

💡 Подсказка:

```go
import "math"

func isSquare(n int) (int, bool) {
root := int(math.Sqrt(float64(n)))
return root, root*root == n
}
```

🛠 **Что проверяет задача:**

• Умение работать с нецелыми корнями
• Алгоритмы "двойного указателя" (две границы окна)
• Понимание строгой проверки на натуральные числа
• Внимание к float64-погрешности и типам



tg-me.com/golangtests/777
Create:
Last Update:

🧠 Хитрая задача на Go (v1.22+) — алгоритмы, циклы и подвох в логике

📌 Задача: "Подряд идущие квадраты"

Дано: массив из N положительных целых чисел []int, например:


[]int{1, 4, 9, 16, 25, 36, 50, 64, 81}


Нужно найти максимальную длину подмассива, где все элементы — квадраты подряд идущих натуральных чисел.

Например, [4, 9, 16, 25] — это квадраты 2², 3², 4², 5² → длина = 4
[50, 64] — не подходят, так как 50 не является точным квадратом.

🎯 Формат функции:


func MaxConsecutiveSquares(nums []int) int


Пример:


input := []int{1, 4, 9, 16, 25, 36, 50, 64, 81}
fmt.Println(MaxConsecutiveSquares(input)) // 👉 6


🧩 Подвох:

- Часто пытаются сравнивать разности или применять хэшмапы — но это ошибка
- Нужно восстановить корни чисел (`sqrt`) и убедиться, что они натуральные и идут подряд
- Важно использовать math.Sqrt и быть осторожным с плавающей точкой (`float64`)
- Также важно не выходить за границы slice

💡 Подсказка:

```go
import "math"

func isSquare(n int) (int, bool) {
root := int(math.Sqrt(float64(n)))
return root, root*root == n
}
```

🛠 **Что проверяет задача:**

• Умение работать с нецелыми корнями
• Алгоритмы "двойного указателя" (две границы окна)
• Понимание строгой проверки на натуральные числа
• Внимание к float64-погрешности и типам

BY Go tests


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/golangtests/777

View MORE
Open in Telegram


Go tests Telegram | DID YOU KNOW?

Date: |

The Singapore stock market has alternated between positive and negative finishes through the last five trading days since the end of the two-day winning streak in which it had added more than a dozen points or 0.4 percent. The Straits Times Index now sits just above the 3,060-point plateau and it's likely to see a narrow trading range on Monday.

Importantly, that investor viewpoint is not new. It cycles in when conditions are right (and vice versa). It also brings the ineffective warnings of an overpriced market with it.Looking toward a good 2022 stock market, there is no apparent reason to expect these issues to change.

Go tests from ye


Telegram Go tests
FROM USA